package com.mz361.stdapi.service;

import com.alibaba.fastjson.JSONObject;
import com.mz361.modules.system.domain.CMember;
import com.mz361.modules.system.domain.User;

public interface SignInService {


    /**
     * 发送手机验证码
     *
     * @param phone
     * @return
     */
    boolean sendCode(String phone, String type);

    /**
     * 校验手机号是否申请过注册
     * 返回字符串 0：新用户，1：已申请未完成注册，2：已完整注册流程
     *
     * @param phone
     * @return
     */
    String verifyPhone(String phone);

    /**
     * 根据邀请码查询邀请码用户
     *
     * @param inviteCode
     * @return
     */
    User getByInviteCode(String inviteCode);

    /**
     * 根据userID查询用户信息
     *
     * @param userId
     * @return
     */
    CMember getByUserId(String userId);

    /**
     * 根据phone查询用户信息
     *
     * @param phone
     * @return
     */
    CMember getByPhone(String phone);

    /**
     * 校验手机和验证码是否匹配
     *
     * @param phone
     * @param code
     * @return
     */
    boolean verify(String phone, String code,String type);

    /**
     * 首次注册
     *
     * @param phone
     * @param password
     * @return
     */
    CMember fistSingIn(String phone, String password, String type);

    /**
     * 变更密码
     *
     * @param phone
     * @param password
     * @return
     */
    CMember findPassword(String phone, String password);

    /**
     * 删除手机redis验证码
     *
     * @param phone
     */
    void delMessge(String phone);

    /**
     * 登录获取信息
     *
     * @param phone
     * @param cMember
     * @return
     */
    JSONObject getLoginData(String phone, CMember cMember);

    /**
     * 企业认证
     *
     * @param phone
     * @param companyName
     * @param companyNum
     * @return
     */
    String verifyCompany(String phone, String companyName, String companyNum, User user);


}
